package com.jungle.task.executor;

import com.jungle.task.Task;
import com.jungle.task.TaskType;
import com.jungle.task.parameter.TaskParameter;
import com.jungle.task.result.TaskResult;
import org.springframework.core.Ordered;

import java.io.Serializable;

/**
 * @author 李岩 at 2021/10/22.
 */
public interface TaskExecutor<T extends TaskParameter,V extends TaskResult> extends Ordered, Serializable {
    /**
     * 执行任务
     *
     * @param task 任务
     * @return res
     */
    V execute(Task<T,V> task);

    /**
     * 关心的任务类型
     *
     * @return 任务类型
     */
    TaskType concernType();
}
